Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge v3.5.3 into dev #2156

Merged
merged 224 commits into from
Apr 17, 2024
Merged

Merge v3.5.3 into dev #2156

merged 224 commits into from
Apr 17, 2024

Conversation

andrew-platt
Copy link
Collaborator

Not ready yet.

Feature or improvement description
Improvements from release 3.5.3 require merging.

Related issue, if one exists
Release 3.5.3

Impacted areas of the software
Only areas impacted by 3.5.3

Additional supporting information
3.5.3 included a few bugfixes that conflict with the current dev branch. So we are using the intermediary branch of m/3.5.3_to_dev to sort out any differences.

Test results, if applicable
Some tests may change slightly.

andrew-platt and others added 30 commits February 14, 2024 17:08
- 5MW_Land_BD_Linear_Aero: BD + AD15 (based on 5MW_Land_BD_Linear, but with aero)
- 5MW_Land_Linear_Aero: ED + AD15 (based on 5MW_Land_BD_Linear_Aero, but with ED)
- 5MW_OC4Semi_MD_Linear: MD equivalent of 5MW_OC4Semi_Linear
Upgrade to setup-python@v4 and cache@v4 for GH actions
Specify using np.float32 where possible in reading the linearization file. Also use np.float64 instead of float for matrices. Read matrices with genfromtxt instead of line by line
Previously the number of parallel threads in CTest was set via the -j flag. This changes it to use an environment variable set at the top of the file. The number of parallel tests was reduced from 4 to 2 as the linearization tests were failing from lack of memory. This may need to be adjusted.
…sion tests.

The previous method looped over each element and checked to see if it was within tolerance of the reference. This does the compare for the full matrices and then iterates over the element indices which were not within tolerance. This should significantly reduce the time to do the comparison for large matrices.

Also prints out the row/column variables which correspond to that element.
This will prevent warnings about node 16 deprecation
…SS_Rdtn%numStates

This also moves to a simpler scheme that just checks if the perturbation index 'n' is equal to the current value index 'k'
The motions in dUdy from BD were starting at the incorrect index.  Instead of starting at the motion, the index started at the root load output.  This resulted in a shift of all the dUdy terms coupling y_BD motion to u_AD blade motion.

This error has existed since at least commit 315bb29 on April 13, 2018

Co-authored-by: Derek Slaughter <deslaughter@gmail.com>
Lin tests: increase out precision, error printing full filename, add SD linearization test
…h documentation)

This results in some differences in the dUdy, A, and C matrices, but basically the same frequencies

Co-authored-by: Derek Slaughter <deslaughter@gmail.com>
Fix BD + AD linearization indexing (negative damping results)
When the change in reference rotation was implemented in v3.5.0, it effectively changed the states to be in the rotating frame. The existing method for putting the state Jacobians into the rotating frame involved calculating the difference in rotation between the root mesh reference orientation and the root mesh current orientation. Originally, the reference orientation always aligned with the blade root reference orientation inside BeamDyn. However, this is not a valid assumption when ChangeRefFrame = .true. as the blade root reference is updated by UpdateStates at every step.

This commit changes two things: first, if ChangeRefFrame is true, then p%RotStates is also set to true because the states are in the rotating frame; second, the Jacobian is now rotated by the difference between the root mesh current orientation and BeamDyn's root reference orientation. These orientations will be the same after UpdateStates, but the correction is still applied in case the Jacobian routines are called with a different root mesh orientation.
Fix bug in BD linearization resulting from reference rotation change
mayankchetan and others added 17 commits April 4, 2024 10:26
GH actions to push docker image to Github container registry
Added the missing reference link about MEMBER OUTPUT LISTS to the relevant page from the readthedocs.io site (https://openfast.readthedocs.io/en/dev/source/user/subdyn/input_files.html#member-output-list).
…ch-1

Edit to readthedocs.io -- Adding Internal Reference Hyperlink for appendixD.rst
GH actions: build docker on release instead of merge
Summary of all PR's included in this merge (PR #2121):

* Add 4 linearization regression tests
* Upgrade to setup-python@v5 and cache@v4 for GH actions
* Update fast_linearization_file.py to use less memory
* Use env var to set CTest parallel runs, reduce to 2
* Use more efficient method to compare linearization matrices in regression tests.
* Fix printing bug in Python Linear Regression test script
* GH actions: upgrade upload-artifact to v4
* Fix bug in HD_Perturb_x where SS_Exctn%numStates was used instead of SS_Rdtn%numStates
* GH actions: upgrade checkout to v4 and setup-python to v5
* Remove typo in warning, retains c/con option for output flags for backwards compatibility
* Bathymetry grid bug and slope normal vector bug fix
* Change input string size for bathgrid and waterkin
* Lin tests: increase out precision, error printing full filename
* Add SubDyn Linearization test case
* Lin: incorrect BD index in dUdy for AD motion
* Lin: sum BD blade root motion to hub moment m_ud term (consistent with documentation)
* Fix bug in BD linearization resulting from reference rotation change
* Improve handling of Paths for SrvD UserSubs Input Files
* Revert " Resolve BeamDyn initial strain for rotated blade"
* BeamDyn: Disable changing the reference frame
* BeamDyn: Implement new initial strain fix based on OpenTurbine documentation
* SrvD: fix typo in registry from PR #2079
* BeamDyn: Restore previous fix to pitch actuator logic in SetParameters
* FASTlib: Turbine(:) array must use Fortran index 1 start
* FASTlib: change ExternInitData%TurbineID to %TurbIDforName
* FASTlib: change iTurb inputs to routines with c-bindings to index 0
* Set 5MW_Land_DLL_WTurb_cpp as a CPP_API test, not CPP_DRIVER
* Adjust if statements in FAST_OpFM_Step for iTurb being in range 1:NumTurbines.
* CPP testing: fix logic setting exec name in CMakeList.txt
* TurbSim: increase filename to 1024 characters
* VSbuild: always build Registry as release x64
* Add initialization of MHK, WtrDpth, MSL2SWL in IfW_InitInp for AWAE module
* Use of potentially unallocated array in AeroDyn_AllBldNdOuts.
* VSbuild: increase stack size for FAST.Farm
* CMake: openmp optional for FF and CPP if not explicitly requested (#2120)
* Update docs for release 3.5.3
@andrew-platt andrew-platt added this to the v4.0.0 milestone Apr 12, 2024
@andrew-platt andrew-platt self-assigned this Apr 12, 2024
@andrew-platt andrew-platt merged commit 00ba494 into dev Apr 17, 2024
42 checks passed
@andrew-platt andrew-platt deleted the m/3.5.3_to_dev branch April 17, 2024 16:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants